const { app, BrowserWindow, ipcMain } = require('electron');
const axios = require('axios');
const path = require('path');

// 检查列表中的网站
const websites = [
  'https://hotml.net',
  'https://hotml.cn',
  'https://linyee.net',
];

// 备用网站
const fallbackWebsite = 'https://blog.csdn.net/jiaguoxinzhi/';

// 用于存储第一个可访问的网站
let accessibleWebsite = null;

// 检查网站是否可访问
async function checkWebsiteAccessibility(url) {
  try {
    const response = await axios.get(url, {
      timeout: 5000, // 5秒超时
      validateStatus: function(status) {
        return status >= 200 && status < 400; // 只接受成功的响应状态码
      }
    });
    console.log(`网站 ${url} 可访问，状态码: ${response.status}`);
    return true;
  } catch (error) {
    console.log(`网站 ${url} 不可访问: ${error.message}`);
    return false;
  }
}

// 按顺序检查所有网站
async function findAccessibleWebsite() {
  for (const website of websites) {
    const isAccessible = await checkWebsiteAccessibility(website);
    if (isAccessible) {
      accessibleWebsite = website;
      return;
    }
  }
  // 如果没有可访问的网站，使用备用网站
  accessibleWebsite = fallbackWebsite;
}

// 创建窗口
function createWindow() {
  const win = new BrowserWindow({
    width: 1200,
    height: 800,
    webPreferences: {
      preload: path.join(__dirname, 'preload.js'),
      contextIsolation: true,
      nodeIntegration: false
    }
  });

  // 加载找到的可访问网站或备用网站
  win.loadURL(accessibleWebsite);

  // 打开开发工具（可选）
  // win.webContents.openDevTools();
}

// 当 Electron 完成初始化并准备创建浏览器窗口时
app.whenReady().then(async () => {
  console.log('开始检查网站可访问性...');
  await findAccessibleWebsite();
  console.log(`将打开网站: ${accessibleWebsite}`);
  createWindow();

  // 在 macOS 上，即使所有窗口都关闭，应用程序也会保持活动状态
  app.on('activate', () => {
    if (BrowserWindow.getAllWindows().length === 0) createWindow();
  });
});

// 当所有窗口关闭时退出应用程序（Windows & Linux）
app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') app.quit();
});